package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excels;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 案卷管理对象 record_archives
 *
 * @author admin
 * @date 2022-03-02
 */
public class RecordArchivesBook extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private Long archivesId;
    private String archivesIdStr;
    /**
     * 分类ID
     */
    private Long typeId;

    /**
     * 工程ID(外键)
     */
    private Long enginId;

    /**
     * 案卷分类号
     */
    @Excel(name = "分类号")
    private String archiveClassifiNum;

    /**
     * 档号
     */
    @Excel(name = "档号")
    private String archiveFileNum;

    /**
     * 案卷题名
     */
    @Excel(name = "案卷题名(必填)")
    private String caseFileTitle;

    /**
     * 档案馆代码
     */
    @Excel(name = "档案馆代号")
    private String archiveCode;

    /**
     * 微缩号
     */
    @Excel(name = "微缩号")
    private String miniatureNum;

    /**
     * 项目代号
     */
    @Excel(name = "项目代号")
    private String projectCode;

    /**
     * 责任者
     */
    @Excel(name = "责任者")
    private String personLiable;

    /**
     * 编制日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "编制日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date compilationDate;

    /**
     * 总登记号
     */
    @Excel(name = "总登记号")
    private String registNum;

    /**
     * 存放位置
     */
    @Excel(name = "存放位置")
    private String storagePosition;

    /**
     * 编制单位
     */
    @Excel(name = "编制单位")
    private String organization;

    /**
     * 进馆日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "进馆日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date entryDate;

    /**
     * 总卷数
     */
    @Excel(name = "总卷数")
    private Long totalRolls;

    /**
     * 当前卷
     */
    @Excel(name = "当前卷")
    private Long currentRolls;

    /**
     * 保管期限
     */
    @Excel(name = "保管期限")
    private String storageTime;

    /**
     * 密级
     */
    @Excel(name = "密级")
    private String secretLevel;

    /**
     * 借阅状态
     */
    @Excel(name = "实体借阅状态，1：申请中，2：已借出，3：审核拒绝", type = Excel.Type.EXPORT)
    private String status;

    /**
     * 预留字段1，归档状态
     */
    @Excel(name = "归档状态，0：未申请，1：申请中，2：审核通过，3：审核拒绝", type = Excel.Type.EXPORT)
    private String objStr1;

    /**
     * 预留字段2, 移交单位
     */
    @Excel(name = "移交单位")
    private String objStr2;

    /**
     * 预留字段3
     */
    private String objStr3;

    /**
     * 预留字段4
     */
    private String objStr4;

    /**
     * 预留字段5
     */
    private String objStr5;

    /**
     * 预留字段6
     */
    private String objStr6;

    /**
     * 预留字段7
     */
    private String objStr7;

    /**
     * 预留字段8
     */
    private String objStr8;

    /**
     * 预留字段9
     */
    private String objStr9;

    /**
     * 预留字段10
     */
    private String objStr10;

    /**
     * 预留字段11，创建人ID
     */
    private Long objInt11;

    /**
     * 预留字段12
     */
    private Long objInt12;

    /**
     * 预留字段13
     */
    private Long objInt13;

    /**
     * 预留字段14
     */
    private Long objInt14;

    /**
     * 预留字段15
     */
    private Long objInt15;

    // 文件对象
    @Excels({
            @Excel(name = "顺序号", targetAttr = "sequenceNum", type = Excel.Type.EXPORT),
            @Excel(name = "文件编号", targetAttr = "fileNo", type = Excel.Type.EXPORT),
            @Excel(name = "文件题名(必填)", targetAttr = "docTitle", type = Excel.Type.EXPORT),
            @Excel(name = "文件责任者", targetAttr = "objStr1", type = Excel.Type.EXPORT),
            @Excel(name = "页数", targetAttr = "pageCounts", type = Excel.Type.EXPORT),
            @Excel(name = "页号", targetAttr = "pageNo", type = Excel.Type.EXPORT),
            @Excel(name = "备注", targetAttr = "remark", type = Excel.Type.EXPORT),
    })
    private List<RecordFile> files;

    public List<RecordFile> getFiles() {
        return files;
    }

    public void setFiles(List<RecordFile> files) {
        this.files = files;
    }

    public Long getTypeId() {
        return typeId;
    }

    public void setTypeId(Long typeId) {
        this.typeId = typeId;
    }

    public String getStorageTime() {
        return storageTime;
    }

    public void setStorageTime(String storageTime) {
        this.storageTime = storageTime;
    }

    public Long getArchivesId() {
        return archivesId;
    }

    public void setArchivesId(Long archivesId) {
        this.archivesId = archivesId;
    }

    public String getArchiveClassifiNum() {
        return archiveClassifiNum;
    }

    public void setArchiveClassifiNum(String archiveClassifiNum) {
        this.archiveClassifiNum = archiveClassifiNum;
    }

    public String getArchiveFileNum() {
        return archiveFileNum;
    }

    public void setArchiveFileNum(String archiveFileNum) {
        this.archiveFileNum = archiveFileNum;
    }

    public String getArchiveCode() {
        return archiveCode;
    }

    public void setArchiveCode(String archiveCode) {
        this.archiveCode = archiveCode;
    }

    public String getCaseFileTitle() {
        return caseFileTitle;
    }

    public void setCaseFileTitle(String caseFileTitle) {
        this.caseFileTitle = caseFileTitle;
    }

    public String getMiniatureNum() {
        return miniatureNum;
    }

    public void setMiniatureNum(String miniatureNum) {
        this.miniatureNum = miniatureNum;
    }

    public String getProjectCode() {
        return projectCode;
    }

    public void setProjectCode(String projectCode) {
        this.projectCode = projectCode;
    }

    public String getPersonLiable() {
        return personLiable;
    }

    public void setPersonLiable(String personLiable) {
        this.personLiable = personLiable;
    }

    public Date getCompilationDate() {
        return compilationDate;
    }

    public void setCompilationDate(Date compilationDate) {
        this.compilationDate = compilationDate;
    }

    public String getRegistNum() {
        return registNum;
    }

    public void setRegistNum(String registNum) {
        this.registNum = registNum;
    }

    public String getStoragePosition() {
        return storagePosition;
    }

    public void setStoragePosition(String storagePosition) {
        this.storagePosition = storagePosition;
    }

    public String getOrganization() {
        return organization;
    }

    public void setOrganization(String organization) {
        this.organization = organization;
    }

    public Date getEntryDate() {
        return entryDate;
    }

    public void setEntryDate(Date entryDate) {
        this.entryDate = entryDate;
    }

    public Long getTotalRolls() {
        return totalRolls;
    }

    public void setTotalRolls(Long totalRolls) {
        this.totalRolls = totalRolls;
    }

    public Long getCurrentRolls() {
        return currentRolls;
    }

    public void setCurrentRolls(Long currentRolls) {
        this.currentRolls = currentRolls;
    }

    public String getSecretLevel() {
        return secretLevel;
    }

    public void setSecretLevel(String secretLevel) {
        this.secretLevel = secretLevel;
    }

    public Long getEnginId() {
        return enginId;
    }

    public void setEnginId(Long enginId) {
        this.enginId = enginId;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getObjStr1() {
        return objStr1;
    }

    public void setObjStr1(String objStr1) {
        this.objStr1 = objStr1;
    }

    public String getObjStr2() {
        return objStr2;
    }

    public void setObjStr2(String objStr2) {
        this.objStr2 = objStr2;
    }

    public String getObjStr3() {
        return objStr3;
    }

    public void setObjStr3(String objStr3) {
        this.objStr3 = objStr3;
    }

    public String getObjStr4() {
        return objStr4;
    }

    public void setObjStr4(String objStr4) {
        this.objStr4 = objStr4;
    }

    public String getObjStr5() {
        return objStr5;
    }

    public void setObjStr5(String objStr5) {
        this.objStr5 = objStr5;
    }

    public String getObjStr6() {
        return objStr6;
    }

    public void setObjStr6(String objStr6) {
        this.objStr6 = objStr6;
    }

    public String getObjStr7() {
        return objStr7;
    }

    public void setObjStr7(String objStr7) {
        this.objStr7 = objStr7;
    }

    public String getObjStr8() {
        return objStr8;
    }

    public void setObjStr8(String objStr8) {
        this.objStr8 = objStr8;
    }

    public String getObjStr9() {
        return objStr9;
    }

    public void setObjStr9(String objStr9) {
        this.objStr9 = objStr9;
    }

    public String getObjStr10() {
        return objStr10;
    }

    public void setObjStr10(String objStr10) {
        this.objStr10 = objStr10;
    }

    public Long getObjInt11() {
        return objInt11;
    }

    public void setObjInt11(Long objInt11) {
        this.objInt11 = objInt11;
    }

    public Long getObjInt12() {
        return objInt12;
    }

    public void setObjInt12(Long objInt12) {
        this.objInt12 = objInt12;
    }

    public Long getObjInt13() {
        return objInt13;
    }

    public void setObjInt13(Long objInt13) {
        this.objInt13 = objInt13;
    }

    public Long getObjInt14() {
        return objInt14;
    }

    public void setObjInt14(Long objInt14) {
        this.objInt14 = objInt14;
    }

    public Long getObjInt15() {
        return objInt15;
    }

    public void setObjInt15(Long objInt15) {
        this.objInt15 = objInt15;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("archivesId", getArchivesId())
                .append("archiveClassifiNum", getArchiveClassifiNum())
                .append("archiveFileNum", getArchiveFileNum())
                .append("archiveCode", getArchiveCode())
                .append("caseFileTitle", getCaseFileTitle())
                .append("miniatureNum", getMiniatureNum())
                .append("projectCode", getProjectCode())
                .append("personLiable", getPersonLiable())
                .append("compilationDate", getCompilationDate())
                .append("registNum", getRegistNum())
                .append("storagePosition", getStoragePosition())
                .append("organization", getOrganization())
                .append("entryDate", getEntryDate())
                .append("totalRolls", getTotalRolls())
                .append("currentRolls", getCurrentRolls())
                .append("storageTime", getStorageTime())
                .append("secretLevel", getSecretLevel())
                .append("enginId", getEnginId())
                .append("status", getStatus())
                .append("typeId", getTypeId())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .append("createBy", getCreateBy())
                .append("updateBy", getUpdateBy())
                .append("objStr1", getObjStr1())
                .append("objStr2", getObjStr2())
                .append("objStr3", getObjStr3())
                .append("objStr4", getObjStr4())
                .append("objStr5", getObjStr5())
                .append("objStr6", getObjStr6())
                .append("objStr7", getObjStr7())
                .append("objStr8", getObjStr8())
                .append("objStr9", getObjStr9())
                .append("objStr10", getObjStr10())
                .append("objInt11", getObjInt11())
                .append("objInt12", getObjInt12())
                .append("objInt13", getObjInt13())
                .append("objInt14", getObjInt14())
                .append("objInt15", getObjInt15())
                .toString();
    }
}
